Special-purpose computing devices, for example, multi-function devices (e.g., printing centers), smartphones, etc., benefit from access to libraries of applications. These applications may provide extensibility options for the computing devices, enabling them to perform one or more additional functions or to improve performance of current functions as new applications are developed. The libraries may be centrally located or may be distributed among a plurality of devices, for example, in peer-to-peer sharing. Loading such applications to the devices typically proceeds by each individual device accessing the application library and downloading the application whether automatically or manually. In large systems, e.g., commercial fleets, this may be time consuming and may present issues since different devices of the fleet have different hardware capabilities, operating systems, etc.
Furthermore, such extensibility in a commercial fleet may present a security risk. Allowing the computing devices to be modified by accessing a library may provide an opportunity to access and/or modify the computing device in ways not intended by the network administrator. Accordingly, in many environments, the extensibility, at least when the devices of the fleet are deployed, is disabled. Thus, to update or provide new functionality to the device, in some cases, a service operator is required to physically access the device and enable the extensibility features, which may further add to delay and expense involved with increasing or adding functionality to the devices. Moreover, maintaining the database and relying on local operators to update the system may result in an inconsistent deployment of extensibility applications across the fleet.
Additionally, the development, management, and deployment of such extensibility applications are typically provided by distinct systems. For example, an application may be developed in a development studio and loaded into an application database, which may then be accessed and loaded into various devices on a network. However, this requires the interaction of several different systems, which may be cumbersome for a variety of different reasons, including compatibility issues.